﻿//using System;
//using Lari.Configuration;
//using Lari.Framework.Exceptions.Message;

//namespace Lari.Framework.Utility
//{
//    public static class XMLMessaage
//    {
//        //static XMLMessaage()
//        //{
//        //    try
//        //    {
//        //        MessageProvider = new XmlMessageProvider();
//        //    }
//        //    catch (Exception ex)
//        //    {
//        //        throw new Exception("Message Provider not found. Configure it in the config file.", ex);
//        //    }
//        //}

//        //private static IMessageProvider MessageProvider { get; set; }

///*
//        public static string Message(Exception ex, string appname, int? errorCode = null,
//                                     IDictionary<string, object> extentedProperties = null)
//        {
//            bool isLogingRequired = false;
//            string retString = string.Empty;
//            ex.Data.Add("SOURCE", appname);

//            if (ex is LariException)
//            {
//                var ex2 = ex as LariException;

//                ex.Data.Add("EVENTID", ex2.Id);
//                isLogingRequired = ex2.IsLogRequired;
//                retString = ex2.ToString();
//            }
//            else
//            {
//                isLogingRequired = true;
//                if (errorCode.HasValue)
//                {
//                    retString = Message(errorCode.Value);
//                    ex.Data.Add("EVENTID", errorCode.Value);
//                }
//                else
//                {
//                    retString = ex.Message;
//                }
//            }

//            if (!(ex is FaultException<LariFault> || ex.GetBaseException() is FaultException<LariFault>))
//            {
//                // if (isLogingRequired)
//                //LogServiceHelper.WriteErrorLog(ex, extentedProperties);
//            }
//            else
//            {
//                var fault = ex as FaultException<LariFault>;

//                retString = ApplicationConfig.ShowMessageCode
//                                ? string.Format("[{0}] - {1}", fault.Detail.Id, fault.Detail.CustomMessage)
//                                : fault.Detail.CustomMessage;
//            }
//            return retString;
//        }
//*/

//        //public static string Message(int code, bool showCode = true)
//        //{
//        //    if (showCode)
//        //        return ApplicationConfig.ShowMessageCode ? string.Format("[{0}] - {1}", code, MessageProvider.GetMessage(code))
//        //                   : MessageProvider.GetMessage(code);
//        //    return MessageProvider.GetMessage(code);
//        //}


//        //public static bool HasAccess(string accessCode)
//        //{
//        //    if (string.IsNullOrEmpty(accessCode))
//        //        return true;

//        //    if (AppData.Instance.AccessList == null)
//        //        return false;

//        //    return AppData.Instance.AccessList.Contains(accessCode);

//        //}
//    }
//}